//#define _CRT_SECURE_NO_WARNINGS
//#include<stdio.h>
//
//void Swap(int* x1, int* x2)
//{
//	int tmp = *x2;
//	*x2 = *x1;
//	*x1 = tmp;
//}
//
//void Print(int* a, int size)
//{
//	for (int i = 0; i < size; i++)
//	{
//		printf("%d  ", a[i]);
//	}
//}
//
//void DataDown(int* a, int size, int parent)
//{
//	int child = parent * 2 + 1;
//	while (child < size)
//	{
//		if (child + 1 < size && a[child + 1] > a[child])
//		{
//			child++;
//		}
//		if (a[child] > a[parent])
//		{
//			Swap(&a[child], &a[parent]);
//			parent = child;
//			child = 2 * parent + 1;
//		}
//		else
//		{
//			break;
//		}
//	}
//}
//
//void HeapSort(int* a, int size)
//{
//	for (int i = (size - 1 - 1) / 2; i >= 0; i--)
//	{
//		DataDown(a, size, i);
//	}
//	while (size)
//	{
//		Swap(&a[0], &a[size-1]);
//		DataDown(a, size - 1, 0);
//		size--;
//	}
//}
//
//int main()
//{
//	int a[] = { 1,4,2,6,3,8,7,0,5,9 };
//	int size = sizeof(a) / sizeof(a[0]);
//	HeapSort(a, size);
//	Print(a, size);
//	return 0;
//}
